An insulin pump is a fluid infusion device for delivering insulin to people who suffer from diabetes. The pump, which is worn by the user and eliminates the need for multiple daily insulin injections, closely imitates a normally functioning pancreas by releasing hundreds of small doses of insulin each day into the body through an infusion set to regulate blood glucose levels. The rate of delivery of these small doses (i.e., the basal rate) varies from user to user. Indeed, even for a particular user, the basal rate varies throughout the day, and depends upon a variety of factors such as the user's internal clock, metabolism, physical health, and level of stress and exercise.
A basal rate profile consists of one or more basal rates defined to cover the 24 hours of the day (e.g., 24 hourly basal rates). Although portions of this description refer to hourly basal rates and hourly basal rate profiles, it should be understood that basal rates may cover more or less than a one hour time period. Indeed, the time periods covered by basal rates in a profile need not be equal. The concepts of the present disclosure are not limited by the duration of an individual basal rate, and the references to hourly basal rates are only exemplary. Many users use different basal rate profiles for different circumstances. For example, one basal rate profile may be used for weekdays, another profile (i.e., with different hourly basal rates) for weekends, and another profile for vacation days. These different basal rate profiles are designed to accommodate the expected differences in the user's background insulin needs resulting from variations in the user's sleep patterns, levels of exercise and stress, health condition, menstrual cycle status, etc. during such periods. Pumps also deliver (either automatically or when activated by the user) bolus doses of insulin (in addition to the basal rate) before meals or snacks to compensate for caloric intake.
As the amount and rate of insulin delivery (both basal and bolus) must be tailored to the individual needs of the user, modern pumps are programmable. Some pumps are capable of communicating with a separate computing device, and are compatible with software applications that may be executed on the computing device. The software permits an operator, such as the user or a health care provider, to customize the settings of the various parameters that affect the pump's operation. These parameters are included in a configuration file that is executed by the pump, and include hourly basal rates, maximum hourly basal rates, bolus dose settings, communication settings, battery settings, and many others. For example, using programming software, a user may upload the configuration file from the user's pump, modify the settings for certain parameters to change the operation of the pump, and save the modified configuration file to the pump. Alternatively, a health care provider responsible for programming the pumps of multiple patients may select an initial configuration file stored on a pump or computing device as a starting point for programming the patients' pumps. Many of the parameter settings of the initial configuration file (e.g., battery type, language, etc.) may be suitable for all of the pumps to be programmed. Other settings (e.g., hourly basal rates, bolus dose settings, etc.) may be unique to each patient's pump. After the health care provider selects the initial configuration file, he or she may change only the settings needed to customize the pump's operation for the current patient, then save the customized configuration file to the patient's pump without having to define a setting for every pump parameter.
As suggested by the foregoing, insulin pumps perform relatively complex functions, which directly affect the health of the user. For at least these reasons, programming software is generally designed to simplify, to the extent possible, the processes for programming pump functions while simultaneously incorporating safety measures to prevent operators from inadvertently programming a pump with parameter settings that may harm the user. One safety measure incorporated by some programming software applications is a workflow structure that prevents operators from selecting invalid settings for pump parameters. Many pump parameters are dependent upon one another. For example, the range of settings available for an hourly basal rate depends upon the setting of the maximum hourly basal rate parameter. Thus, conventional programming software may prevent the operator from selecting an hourly basal rate that exceeds the current maximum hourly basal rate parameter. If the operator must set an hourly basal rate value in excess of the current maximum, the operator must first set the hourly basal rate to an undesired value, change the current maximum value, then re-set the hourly basal rate to the desired, higher value. In this manner, conventional software imposes sequential workflows designed to prevent operators from making changes to parameters that would, if permitted, violate a relationship with one or more previously defined parameters.
Although it is desirable to reduce the possibility of programming a pump with an invalid parameter setting, it is also desirable to provide flexibility to the operator. In some situations, the operator may wish to set a parameter to an invalid value and take the time to correct the invalidity condition later when it is more convenient. As long as the risk of programming a pump with an invalid parameter setting is managed by the software, permitting the operator to set parameters in the sequence of the operator's choosing (even though some settings may be invalid) makes the software easier to use and more flexible.